主要目的是將軟體開發過程自動化,從最初的程式碼提交 (code commit) 到最終的部署 (deployment),可以拆成兩個部分來說明:
▪開發人員每日將程式碼提交到共享儲存庫(GitHub/GitLab/Gitea),每次提交都會觸發 CI 伺服器上的自動化工作流程,這個流程能夠在整合開發人員的變更時,立即通知他們任何潛在的問題。
👉DevOps 透過這種小步快跑的程式碼演進方式,目的是防止所謂的合併衝突(Merge Conflict),時刻確保功能之間是持續處於相容的狀態。
▪ Continuous Delivery:建置與測試通過後,程式碼隨時可部署,但上線仍需人工觸發。
▪ Continuous Deployment:進一步自動化,測試通過後自動部署到生產環境,無需人工干預。
👉目的是減少人工作業風險,讓軟體能更快、更可靠地交付給用戶。
🚨要實現 CI/CD,需要工具來支援自動化流程,以下介紹三個常見的解決方案:Jenkins、GitHub Actions、GitLab CI。
📌 例子:當你 push 到 main 分支,就會自動觸發 workflow,完成建置與部署,將專案上傳到 Google Cloud。